package com.Abstract;

/**
 * @Author 小闽
 * @Date 2024/9/11 10:15
 * @PackageName: com.Abstract
 * @ClassName: Abstract01
 * @Description: 抽象方法
 * @Version 1.0
 */
public class Abstract01 {
}
abstract class Animal{
    private String name;
    private int age;

    /**
     * 构造方法
     * @param name
     * @param age
     */
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // 这里的eat()方法实现，但是并没有什么用处
    // 即：父类方法的不确定性
    // => 考虑将该方法设计为抽象方法
    // => 即将该方法设计成abstract方法
    // => 所谓抽象方法就是不实现方法没有方法体。
    // 动物都有的eat()的行为
    // 抽象类是在父类中设计但并不实现，而是由子类继承父类，并在子类中重写实现
//    public void eat(){
//        System.out.println("这是一个动物，但是不知道吃什么...");
//    }
    // 当方法设计为抽象方法时，则该类也被设计成抽象类
    public abstract void eat();
}